
********************************
■■■■
■ ■ ■ ■
■ ■■■ ■■■
■ ■ ■ ■
■■■■
〜基礎から ★ C++Programing〜
********************************
【注意】 このマガジンは、最大化してお読みください。
また、等角フォントでお読みください。
(MS ゴシックなど)
********************************
発行者 むーくん
マガジンNO. 59(4−20)
発行日 2001/2/4
講読人数 2000名ぐらい
マガジンID 0000050494
このマガジンは、まぐまぐから配信されています。
********************************
★あいさつ★
最近、毎日ひたすら牛乳を飲んでます。
味の違いが鮮明に分かるようになりました。
今、いちばんのオススメは、「農協 Ca 低脂肪」です。
180円前後で、一リットル!安い!
低脂肪でヘルシー!
カルシウムが2倍!
しかも、甘い!!!
一度是非お試しあれ。
********************************
・‥‥…━━━━━━━★ アコム Master Card ★━━━━━━━…‥‥‥・
▼ 即時発行 ▼ 年会費無料 ▼ 年中無休・24時間オープン ▼
▼簡単!便利!利用明細がネットで確認 ▼支払い時に払い方を決められる ▼
★使ってうれしい豪華旅行プレゼントキャンペーン実施中!★
http://www.meru-click.com/?981504655b1355a151t01
********************************
★目次★
・問題3の解答例
・投稿作品の紹介
・予告
********************************
★問題3の解答例★
【問題】
・所持金が1500円だとします。
ルウが、200円、にんじんが100円、タマネギが、100円、
じゃがいもが100円、肉が250円だとします。
最低、一つの食材は買わなければならないとし、
好きな数だけ購入します。
そこで、「最低、一つは購入されているか」
「所持金は足りているか」をチェックするプログラムを作成しなさい。
但し、購入する個数は、キーボードから入力します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【解答例】
/******************************
** おいしいカレーをつくりましょ **
** 2001/2/3 **
*****************************/
#include<iostream>
using namespace std;
int main(void){
int money; /*所持金*/
int roux, carrot, onion, potato, meat; /*購入個数*/
bool ok = true; /*条件を満たしているか保存*/
cout << "ルーはいくつ買う? ";
cin >> roux;
cout << "にんじんはいくつ買う? ";
cin >> carrot;
cout << "たまねぎはいくつ買う? ";
cin >> onion;
cout << "じゃがいもはいくつ買う? ";
cin >> potato;
cout << "肉はいくつ買う? ";
cin >> meat;
money = ( roux*200 + (carrot+onion+potato)*100 + meat*250);
if( !roux || !carrot || !onion || !potato || !meat ){ /* 一つでもゼロだったら */
cout << "材料が足りない!!" << endl;
ok = false; /* 失敗を保存している */
}
if( money > 1500 ){
cout << "お金が足りない!!" << endl;
ok = false; /* 失敗を保存している */
}
if(ok){ /* 失敗の保存をもとに判定 */
cout << "残金は、" << 1500-money << "円です" << endl;
cout << "おいしいカレーのできあがり! " << endl;
}
return 0;
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【解説】
「ok」という変数は、「フラグ」という使い方をしています。
ここでは、通常は、「真(true)」の状態で、
残金が足りないか、0の個数が見つかると、
「偽(false)」になるようにしています。
真偽を簡単に見わけるためのしくみです。
(falseになっていると実行されない)
これがないと、もっと条件式が複雑怪奇になったと思います。(笑)
【おまけ】else ifを用いていない理由を考えてみましょう。
********************************
★投稿作品の紹介★
読者の方から良い作品を頂いたので、紹介させていただきましょう。
#include<iostream>
using namespace std;
int main(void)
{
int ruu, carrot, onion, potato, meat;
int kingaku;
bool kosu;
cout << "!お買物ご苦労さま!" << endl;
cout << "ルウ、幾つ買った?" << endl;
cin >> ruu;
cout << "にんじん、幾つ買った?" << endl;
cin >> carrot;
cout << "タマネギ、幾つ買った?" << endl;
cin >> onion;
cout << "じゃがいも、幾つ買った?" << endl;
cin >> potato;
cout << "お肉、幾つ買った?" << endl;
cin >> meat;
cout << endl;
kosu = ruu + carrot + onion + potato + meat;
kingaku = ruu * 200 + ( carrot + onion + potato ) * 100 + meat * 250;
if (!kosu)
{
cout << "何も買わなかったのね?カレーが作れません!" << endl;
}
else
{
cout << "ルウ = " << ruu << "個" << endl;
cout << "にんじん = " << carrot << "個" << endl;
cout << "タマネギ = " << onion << "個" << endl;
cout << "じゃがいも= " << potato << "個" << endl;
cout << "肉 = " << meat << "個" << endl;
cout << "合計金額 = " << kingaku << "使いました。" << endl;
if (kingaku <= 1500)
{
cout << "買物上手で予算内です!" << endl;
}
else
{
cout << "予算オーバーしています!" << endl;
}
}
return 0;
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【コメント】
大変楽しく作ってもらいました。!(^^)!
プログラムは楽しいのがいちばんですね。
if文をネストさせて書いています。
ネストをうまく使うと、複雑なことを簡単に表せますね。
bool型の変数、kosuは、
整数型を代入して使っているので、intにした方がよいかもしれませんね。
じっくり読んで研究すると楽しいと思います!
********************************
★予告★
蛇足に、もう一つの「選択」、「switch文」を学習します。
********************************
■■■■■■■■ 首都圏在住、就転職希望、20代の方 ■■■■■■■■
有料のIT技術訓練制度。1年間で資格取得いただき、年収額を保証します。
年収460万保証コース(受講料97万円)、320万コース(受49万円)の2つ。
まずはエントリーの上、履歴書を送付ください。(池袋のITスクールDTS)
http://www.meru-click.com/?981504655b1355a156t01
********************************
講読解除はこちら
http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html
バックナンバーはこちら
http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html
内容について質問やご意見など
smukun@hotmail.com
筆者のWebサイト(むーくんの理学的なんでも講座)
http://members.tripod.co.jp/mukun_mmg/
************************************